const XLSX = require('xlsx');
const fs = require('fs');
const path = require('path');

// Excel 文件路径
const excelFile = path.join(__dirname, '20251020.xlsx');

// 读取工作簿
const workbook = XLSX.readFile(excelFile);

// 获取第三个 sheet（sheet 索引从0开始）
const sheetNames = workbook.SheetNames;
if (sheetNames.length < 3) {
  console.error('Excel 文件中没有第三个 sheet');
  process.exit(1);
}
const sheetName = sheetNames[2];
const sheet = workbook.Sheets[sheetName];

// 将 sheet 转换为数组格式（每行作为一个数组）
const jsonData = XLSX.utils.sheet_to_json(sheet, { header: 1 });

// 用于统计重复 key 的频次
const keyCount = {};

// 构造最终的 key-value 对象，C列作为 key，I列作为 value
const result = {};

jsonData.forEach((row) => {
  if (row.length >= 9) { // 至少包含 9 列数据
    const key = row[2]; // C列，对应 index 2
    const value = row[8]; // I列，为 index 8
    if (key !== undefined && key !== null && key !== '') {
      keyCount[key] = (keyCount[key] || 0) + 1;
      // 如果已经存在相同的 key，后面重复的会覆盖前面的值
      result[key] = value || "";
    }
  }
});

// 查找重复的 key（出现次数大于1的）
const duplicates = Object.entries(keyCount)
  .filter(([key, count]) => count > 1)
  .map(([key, count]) => ({ key, count }));

if (duplicates.length > 0) {
  console.log("重复的 key 值及其出现次数：");
  duplicates.forEach(item => {
    console.log(`key: "${item.key}" 出现次数: ${item.count}`);
  });
} else {
  console.log("没有重复的 key 值");
}
  
// 计算 key 被覆盖的次数，即每个重复的 key 的重复数量之和
const overwrittenCount = Object.values(keyCount)
  .reduce((sum, count) => sum + (count > 1 ? count - 1 : 0), 0);
console.log("总计 key 被覆盖的次数：", overwrittenCount);

// 输出总共不重复的 key 数量
console.log("唯一 key 数量：", Object.keys(keyCount).length);

// 构造最终输出的 js 文件内容
const outputContent = 'export default ' + JSON.stringify(result, null, 2) + ';';

// 输出文件路径
const outputFile = path.join(__dirname, 'translations.js');

// 写入到文件
fs.writeFileSync(outputFile, outputContent, { encoding: 'utf-8' });
console.log('翻译对象已导出到', outputFile);